package cn.coufran.commons.exception;

/**
 * 业务错误
 * @author Coufran
 * @since 1.0.0
 * @version 1.0.0
 */
public class ServiceException extends RuntimeException {
    /** 错误码 */
    private String code;

    /**
     * 获取错误码
     * @return 错误码
     */
    public String getCode() {
        return code;
    }

    /**
     * 构造业务错误
     * @param code 错误码
     * @param message 错误消息
     */
    public ServiceException(int code, String message) {
        this(String.valueOf(code), message);
    }

    /**
     * 构造业务错误
     * @param code 错误码
     * @param message 错误消息
     */
    public ServiceException(String code, String message) {
        super(message);
        this.code = code;
    }

    /**
     * 构造业务错误
     * @param code 错误码
     * @param message 错误消息
     * @param e 原生异常
     */
    public ServiceException(int code, String message, Throwable e) {
        this(String.valueOf(code), message, e);
    }

    /**
     * 构造业务错误
     * @param code 错误码
     * @param message 错误消息
     * @param e 原生异常
     */
    public ServiceException(String code, String message, Throwable e) {
        super(message, e);
        this.code = code;
    }

    /**
     * 构造业务错误
     * @param code 错误码
     */
    public ServiceException(int code) {
        this.code = String.valueOf(code);
    }

    /**
     * 构造业务错误
     * @param message 错误消息
     */
    public ServiceException(String message) {
        super(message);
    }

    /**
     * 构造业务错误
     * @param e 原生异常
     */
    public ServiceException(Throwable e) {
        super(e);
    }

}
